Today's networked computing environments are used in businesses for generating and storing large amounts of critical data. The storage systems used for moving, storing, and manipulating this critical data are expected to have high performance, high capacity, and high reliability, all in an ever smaller package. In order to provide a storage system with all the customer's requirements at the lowest cost possible, it is advantageous to maximize the number of interchangeable parts in the system. Manufacturing costs and parts sparing are thereby minimized.
Sometimes, the requirement to make certain modules in a system interchangeable causes design problems that must be solved. Whereas it may be straightforward to design a module to perform a function one way, it may be complicated to design the module to perform the same function two different ways. For example, it is difficult to design a module that accesses disk drives in multiple different orders.